The use of internet protocol (IP) to transport digital video is moving rapidly from being based today on a simple, one-way user datagram protocol (UDP). The emerging delivery methods do not use proprietary transport techniques developed by content coding vendors (e.g., Adobe real-time messaging protocol (RTMP)) or inefficient schemas that are based on progressive downloads of very large content files. The new methods embrace open standards and rely on transporting a series of small files (that when combined comprise the entire content asset) over a hypertext transfer protocol (HTTP) transport. This method of transporting small segments (or fragments) of digital IP video content can be identified as the Segmented HTTP Transport (SHT) method.
The various SHT methods typically use a construct called a manifest file to tell the client how to request the segments in the appropriate order. The manifest file for a particular piece of video content (e.g., a movie, television show, etc.) might contain information describing the uniform resource locators (URLs) and available resolutions for the video content, as well as information that can be used to point to the start of a particular segment of digital IP video. The manifest file is typically transmitted from the IP video source down to the IP video client devices before the transport of the small files (created from digital IP video segments) can commence. The small files are then requested by the client devices and are downloaded from the source servers to the client buffer where they are assembled into a continuous flow, sent to the decoder, and subsequently to the display where (ideally) an uninterrupted viewing experience is created. The client buffer provides a steady play-out for the often different sized segments, since they are asynchronous packets delivered over an IP network. Because the jitter and delay for each segment as it traverses the IP network may vary, the client buffer acts as an elastic storage element that can absorb and hold transient bursts of many segments and can play out a smooth-rate stream to the video rendering engine, or it can absorb transient periods with no segment arrivals and can still play out a smooth-rate stream to the video rendering engine. One or more fragments can be delivered to the client buffer before the play-out and rendering begins, and usually the client buffer is filled to a level that consumes roughly half of its total depth to provide the elastic storage function.
Another feature that can be layered on top of the SHT systems which augments the robustness of the schema can be called adaptive streaming. Rather than encoding content using a single quality/bit rate setting for streaming or downloading, a method of simultaneous transcoding of the single source content into multiple bit rates can be used. This process creates and stores (e.g., at the video source) multiple versions of the same video at different resolutions and play-out bit rates. These multiple versions are time-equal and can be dynamically delivered to the same play-out device depending on the quality of its connection to the network. In this instance, the manifest file construct is extended with information that allows the client to play back at any of the encoded qualities. These types of augmented SHT systems that utilize adaptive streaming techniques can be identified as adaptive SHT systems.
The video client uses a variety of algorithms to determine which play-out quality to choose at any given instant in time. If operating conditions such as network congestion cause the client not to be able to receive the content at a previously requested resolution (bit rate) or if the central processing unit (CPU) loading of a multi-tasking play-out is too heavy and causes it to drop video frames, then the video client may request a lower quality version for the next segment(s) in the sequence. Conversely, if the conditions improve (connection quality or CPU loading), the video client may request a higher quality version of the next segment. Because the SHT systems are based on HTTP transport, the requests for particular resolution video segments that are made by the video client are passed to the source servers using standard HTTP GET or POST messages, which are a common component of the well-known HTTP communication protocol.
Most of the aforementioned SHT systems were described for on-demand video content that is pre-stored on a source server long before the viewers would typically request and access the content. Another augmentation of the adaptive SHT systems is provided by a feature called live streaming. In live streaming SHT systems, the broadcasted video programming is changed into point-to-point delivery in an almost real-time fashion. From a logical standpoint, a live streaming SHT system does not appear very different than an on demand SHT system; however from a real world standpoint there are two significant differences: 1) because the piece of content is being encoded in real-time, new segments are being created, so the manifest file is constantly updated, and 2) because the content is being produced and consumed at more or less the same time, the video client is constantly requesting an updated version of the manifest file to get information on how to request the newly added segments of video.
The migration to HTTP transport for point-to-point unicast delivery of IP video brings about a number of benefits over proprietary or a UDP-based transport. HTTP is a standard that is broadly supported by network equipment like routers and customer premise equipment (CPE). Problems related to network address translation (NAT) that can occur with UDP-based transport are not an issue with HTTP, which is based upon transmission control protocol (TCP). While there are multiple proprietary implementations of SHT systems, as long as the SHT systems are well behaved, the content segments can be cached in a traditional edge cache. The use of a content delivery networks (CDNs), which have globally distributed edge caches, provide a generic way to provide cost effective scale for content delivery.
Like reference numbers and designations in the various drawings indicate like elements.